Skip to content

MkClassDiagram

Show source on GitHub

Node to display the class hierarchy of a class. Supports multiple modes.

Example: Baseclass diagram

Jinja

{{ _mk.MkClassDiagram | MkClassDiagram(mode="baseclasses") }}

Python

MkClassDiagram(klass=MkClassDiagram, mode='baseclasses', direction='TD')
graph TD
  94854583320992["mkclassdiagram.MkClassDiagram"]
  94854574620240["mkdiagram.MkDiagram"]
  94854582908560["mkcode.MkCode"]
  94854582919984["mkcontainer.MkContainer"]
  94854582916880["mknode.MkNode"]
  94854582838576["node.Node"]
  140544995341632["builtins.object"]
  94854574620240 --> 94854583320992
  94854582908560 --> 94854574620240
  94854582919984 --> 94854582908560
  94854582916880 --> 94854582919984
  94854582838576 --> 94854582916880
  140544995341632 --> 94854582838576
```` mermaid
graph TD
  94854583320992["mkclassdiagram.MkClassDiagram"]
  94854574620240["mkdiagram.MkDiagram"]
  94854582908560["mkcode.MkCode"]
  94854582919984["mkcontainer.MkContainer"]
  94854582916880["mknode.MkNode"]
  94854582838576["node.Node"]
  140544995341632["builtins.object"]
  94854574620240 --> 94854583320992
  94854582908560 --> 94854574620240
  94854582919984 --> 94854582908560
  94854582916880 --> 94854582919984
  94854582838576 --> 94854582916880
  140544995341632 --> 94854582838576
````
<pre class="mermaid"><code>graph TD
  94854583320992["mkclassdiagram.MkClassDiagram"]
  94854574620240["mkdiagram.MkDiagram"]
  94854582908560["mkcode.MkCode"]
  94854582919984["mkcontainer.MkContainer"]
  94854582916880["mknode.MkNode"]
  94854582838576["node.Node"]
  140544995341632["builtins.object"]
  94854574620240 --&gt; 94854583320992
  94854582908560 --&gt; 94854574620240
  94854582919984 --&gt; 94854582908560
  94854582916880 --&gt; 94854582919984
  94854582838576 --&gt; 94854582916880
  140544995341632 --&gt; 94854582838576</code></pre>

Example: Subclass diagram

Jinja

{{ _mk.MkContainer | MkClassDiagram(mode="subclasses", direction="LR") }}

Python

MkClassDiagram(klass=MkContainer, mode='subclasses', direction='LR')
graph LR
  94854582919984["mkcontainer.MkContainer"]
  94854582920960["mkblock.MkBlock"]
  94854582922720["mkhtmlblock.MkHtmlBlock"]
  94854582997696["mkdetailsblock.MkDetailsBlock"]
  94854583008800["mktabs.MkTabBlock"]
  94854582722240["mkadmonition.MkAdmonition"]
  94854582723216["mkblockquote.MkBlockQuote"]
  94854582908560["mkcode.MkCode"]
  94854574620240["mkdiagram.MkDiagram"]
  94854583320992["mkclassdiagram.MkClassDiagram"]
  94854583661264["mkpipdeptree.MkPipDepTree"]
  94854583229712["mktreeview.MkTreeView"]
  94854582782240["mktemplate.MkTemplate"]
  94854582994144["mkclidoc.MkCliDoc"]
  94854583051152["mkmaterialbadge.MkMaterialBadge"]
  94854582949968["mkimagecompare.MkImageCompare"]
  94854582959280["mkimageslideshow.MkImageSlideshow"]
  94854583028160["mkiframe.MkIFrame"]
  94854583134784["mkcard.MkCard"]
  94854583277136["mkinstallguide.MkInstallGuide"]
  94854582890320["mkcodeofconduct.MkCodeOfConduct"]
  94854583571872["mkcommitconventions.MkCommitConventions"]
  94854583588448["mkpullrequestguidelines.MkPullRequestGuidelines"]
  94854583585120["mkdevenvsetup.MkDevEnvSetup"]
  94854583312576["mkdevtools.MkDevTools"]
  94854583324832["mkreprrawrendered.MkReprRawRendered"]
  94854583242048["mkcommandoutput.MkCommandOutput"]
  94854582944528["mkcommentedcode.MkCommentedCode"]
  94854583234560["mkconfigsetting.MkConfigSetting"]
  94854583071760["mkpluginflow.MkPluginFlow"]
  94854582943200["mklist.MkList"]
  94854583040896["mkbasetable.MkBaseTable"]
  94854583014896["mktable.MkTable"]
  94854583012912["mkhtmltable.MkHtmlTable"]
  94854583004688["mktabs.MkTab"]
  94854583210752["mktabcontainer.MkTabContainer"]
  94854583032400["mktabbedblocks.MkTabbedBlocks"]
  94854574622784["mktabbed.MkTabbed"]
  94854583031360["mkcritic.MkCritic"]
  94854583023072["mkannotations.MkAnnotation"]
  94854583133024["mkannotations.MkAnnotations"]
  94854583254768["mkfootnotes.MkFootNote"]
  94854583025616["mkfootnotes.MkFootNotes"]
  94854583304304["mkdefinitionlist.MkDefinition"]
  94854583305280["mkdefinitionlist.MkDefinitionList"]
  94854583193984["mkpage.MkPage"]
  94854583213472["mktemplatepage.MkTemplatePage"]
  94854583214448["mkclasspage.MkClassPage"]
  94854583352048["mkmodulepage.MkModulePage"]
  94854582839552["mkshowcase.MkShowcase"]
  94854583196528["mkspeechbubble.MkSpeechBubble"]
  94854583199856["mktasklist.MkTask"]
  94854583201616["mktasklist.MkTaskList"]
  94854583400480["mktimeline.MkTimeline"]
  94854583219600["mkshields.MkShields"]
  94854583574032["mkmetadatabadges.MkMetadataBadges"]
  94854582919984 --> 94854582920960
  94854582920960 --> 94854582922720
  94854582920960 --> 94854582997696
  94854582920960 --> 94854583008800
  94854582919984 --> 94854582722240
  94854582919984 --> 94854582723216
  94854582919984 --> 94854582908560
  94854582908560 --> 94854574620240
  94854574620240 --> 94854583320992
  94854574620240 --> 94854583661264
  94854582908560 --> 94854583229712
  94854582919984 --> 94854582782240
  94854582782240 --> 94854582994144
  94854582782240 --> 94854583051152
  94854582782240 --> 94854582949968
  94854582782240 --> 94854582959280
  94854582782240 --> 94854583028160
  94854582782240 --> 94854583134784
  94854582782240 --> 94854583277136
  94854582782240 --> 94854582890320
  94854582782240 --> 94854583571872
  94854582782240 --> 94854583588448
  94854582782240 --> 94854583585120
  94854582782240 --> 94854583312576
  94854582782240 --> 94854583324832
  94854582782240 --> 94854583242048
  94854582782240 --> 94854582944528
  94854582782240 --> 94854583234560
  94854582782240 --> 94854583071760
  94854582919984 --> 94854582943200
  94854582919984 --> 94854583040896
  94854583040896 --> 94854583014896
  94854583040896 --> 94854583012912
  94854582919984 --> 94854583004688
  94854582919984 --> 94854583210752
  94854583210752 --> 94854583032400
  94854583210752 --> 94854574622784
  94854582919984 --> 94854583031360
  94854582919984 --> 94854583023072
  94854582919984 --> 94854583133024
  94854582919984 --> 94854583254768
  94854582919984 --> 94854583025616
  94854582919984 --> 94854583304304
  94854582919984 --> 94854583305280
  94854582919984 --> 94854583193984
  94854583193984 --> 94854583213472
  94854583213472 --> 94854583214448
  94854583213472 --> 94854583352048
  94854582919984 --> 94854582839552
  94854582919984 --> 94854583196528
  94854582919984 --> 94854583199856
  94854582919984 --> 94854583201616
  94854582919984 --> 94854583400480
  94854582919984 --> 94854583219600
  94854582919984 --> 94854583574032
```` mermaid
graph LR
  94854582919984["mkcontainer.MkContainer"]
  94854582920960["mkblock.MkBlock"]
  94854582922720["mkhtmlblock.MkHtmlBlock"]
  94854582997696["mkdetailsblock.MkDetailsBlock"]
  94854583008800["mktabs.MkTabBlock"]
  94854582722240["mkadmonition.MkAdmonition"]
  94854582723216["mkblockquote.MkBlockQuote"]
  94854582908560["mkcode.MkCode"]
  94854574620240["mkdiagram.MkDiagram"]
  94854583320992["mkclassdiagram.MkClassDiagram"]
  94854583661264["mkpipdeptree.MkPipDepTree"]
  94854583229712["mktreeview.MkTreeView"]
  94854582782240["mktemplate.MkTemplate"]
  94854582994144["mkclidoc.MkCliDoc"]
  94854583051152["mkmaterialbadge.MkMaterialBadge"]
  94854582949968["mkimagecompare.MkImageCompare"]
  94854582959280["mkimageslideshow.MkImageSlideshow"]
  94854583028160["mkiframe.MkIFrame"]
  94854583134784["mkcard.MkCard"]
  94854583277136["mkinstallguide.MkInstallGuide"]
  94854582890320["mkcodeofconduct.MkCodeOfConduct"]
  94854583571872["mkcommitconventions.MkCommitConventions"]
  94854583588448["mkpullrequestguidelines.MkPullRequestGuidelines"]
  94854583585120["mkdevenvsetup.MkDevEnvSetup"]
  94854583312576["mkdevtools.MkDevTools"]
  94854583324832["mkreprrawrendered.MkReprRawRendered"]
  94854583242048["mkcommandoutput.MkCommandOutput"]
  94854582944528["mkcommentedcode.MkCommentedCode"]
  94854583234560["mkconfigsetting.MkConfigSetting"]
  94854583071760["mkpluginflow.MkPluginFlow"]
  94854582943200["mklist.MkList"]
  94854583040896["mkbasetable.MkBaseTable"]
  94854583014896["mktable.MkTable"]
  94854583012912["mkhtmltable.MkHtmlTable"]
  94854583004688["mktabs.MkTab"]
  94854583210752["mktabcontainer.MkTabContainer"]
  94854583032400["mktabbedblocks.MkTabbedBlocks"]
  94854574622784["mktabbed.MkTabbed"]
  94854583031360["mkcritic.MkCritic"]
  94854583023072["mkannotations.MkAnnotation"]
  94854583133024["mkannotations.MkAnnotations"]
  94854583254768["mkfootnotes.MkFootNote"]
  94854583025616["mkfootnotes.MkFootNotes"]
  94854583304304["mkdefinitionlist.MkDefinition"]
  94854583305280["mkdefinitionlist.MkDefinitionList"]
  94854583193984["mkpage.MkPage"]
  94854583213472["mktemplatepage.MkTemplatePage"]
  94854583214448["mkclasspage.MkClassPage"]
  94854583352048["mkmodulepage.MkModulePage"]
  94854582839552["mkshowcase.MkShowcase"]
  94854583196528["mkspeechbubble.MkSpeechBubble"]
  94854583199856["mktasklist.MkTask"]
  94854583201616["mktasklist.MkTaskList"]
  94854583400480["mktimeline.MkTimeline"]
  94854583219600["mkshields.MkShields"]
  94854583574032["mkmetadatabadges.MkMetadataBadges"]
  94854582919984 --> 94854582920960
  94854582920960 --> 94854582922720
  94854582920960 --> 94854582997696
  94854582920960 --> 94854583008800
  94854582919984 --> 94854582722240
  94854582919984 --> 94854582723216
  94854582919984 --> 94854582908560
  94854582908560 --> 94854574620240
  94854574620240 --> 94854583320992
  94854574620240 --> 94854583661264
  94854582908560 --> 94854583229712
  94854582919984 --> 94854582782240
  94854582782240 --> 94854582994144
  94854582782240 --> 94854583051152
  94854582782240 --> 94854582949968
  94854582782240 --> 94854582959280
  94854582782240 --> 94854583028160
  94854582782240 --> 94854583134784
  94854582782240 --> 94854583277136
  94854582782240 --> 94854582890320
  94854582782240 --> 94854583571872
  94854582782240 --> 94854583588448
  94854582782240 --> 94854583585120
  94854582782240 --> 94854583312576
  94854582782240 --> 94854583324832
  94854582782240 --> 94854583242048
  94854582782240 --> 94854582944528
  94854582782240 --> 94854583234560
  94854582782240 --> 94854583071760
  94854582919984 --> 94854582943200
  94854582919984 --> 94854583040896
  94854583040896 --> 94854583014896
  94854583040896 --> 94854583012912
  94854582919984 --> 94854583004688
  94854582919984 --> 94854583210752
  94854583210752 --> 94854583032400
  94854583210752 --> 94854574622784
  94854582919984 --> 94854583031360
  94854582919984 --> 94854583023072
  94854582919984 --> 94854583133024
  94854582919984 --> 94854583254768
  94854582919984 --> 94854583025616
  94854582919984 --> 94854583304304
  94854582919984 --> 94854583305280
  94854582919984 --> 94854583193984
  94854583193984 --> 94854583213472
  94854583213472 --> 94854583214448
  94854583213472 --> 94854583352048
  94854582919984 --> 94854582839552
  94854582919984 --> 94854583196528
  94854582919984 --> 94854583199856
  94854582919984 --> 94854583201616
  94854582919984 --> 94854583400480
  94854582919984 --> 94854583219600
  94854582919984 --> 94854583574032
````
<pre class="mermaid"><code>graph LR
  94854582919984["mkcontainer.MkContainer"]
  94854582920960["mkblock.MkBlock"]
  94854582922720["mkhtmlblock.MkHtmlBlock"]
  94854582997696["mkdetailsblock.MkDetailsBlock"]
  94854583008800["mktabs.MkTabBlock"]
  94854582722240["mkadmonition.MkAdmonition"]
  94854582723216["mkblockquote.MkBlockQuote"]
  94854582908560["mkcode.MkCode"]
  94854574620240["mkdiagram.MkDiagram"]
  94854583320992["mkclassdiagram.MkClassDiagram"]
  94854583661264["mkpipdeptree.MkPipDepTree"]
  94854583229712["mktreeview.MkTreeView"]
  94854582782240["mktemplate.MkTemplate"]
  94854582994144["mkclidoc.MkCliDoc"]
  94854583051152["mkmaterialbadge.MkMaterialBadge"]
  94854582949968["mkimagecompare.MkImageCompare"]
  94854582959280["mkimageslideshow.MkImageSlideshow"]
  94854583028160["mkiframe.MkIFrame"]
  94854583134784["mkcard.MkCard"]
  94854583277136["mkinstallguide.MkInstallGuide"]
  94854582890320["mkcodeofconduct.MkCodeOfConduct"]
  94854583571872["mkcommitconventions.MkCommitConventions"]
  94854583588448["mkpullrequestguidelines.MkPullRequestGuidelines"]
  94854583585120["mkdevenvsetup.MkDevEnvSetup"]
  94854583312576["mkdevtools.MkDevTools"]
  94854583324832["mkreprrawrendered.MkReprRawRendered"]
  94854583242048["mkcommandoutput.MkCommandOutput"]
  94854582944528["mkcommentedcode.MkCommentedCode"]
  94854583234560["mkconfigsetting.MkConfigSetting"]
  94854583071760["mkpluginflow.MkPluginFlow"]
  94854582943200["mklist.MkList"]
  94854583040896["mkbasetable.MkBaseTable"]
  94854583014896["mktable.MkTable"]
  94854583012912["mkhtmltable.MkHtmlTable"]
  94854583004688["mktabs.MkTab"]
  94854583210752["mktabcontainer.MkTabContainer"]
  94854583032400["mktabbedblocks.MkTabbedBlocks"]
  94854574622784["mktabbed.MkTabbed"]
  94854583031360["mkcritic.MkCritic"]
  94854583023072["mkannotations.MkAnnotation"]
  94854583133024["mkannotations.MkAnnotations"]
  94854583254768["mkfootnotes.MkFootNote"]
  94854583025616["mkfootnotes.MkFootNotes"]
  94854583304304["mkdefinitionlist.MkDefinition"]
  94854583305280["mkdefinitionlist.MkDefinitionList"]
  94854583193984["mkpage.MkPage"]
  94854583213472["mktemplatepage.MkTemplatePage"]
  94854583214448["mkclasspage.MkClassPage"]
  94854583352048["mkmodulepage.MkModulePage"]
  94854582839552["mkshowcase.MkShowcase"]
  94854583196528["mkspeechbubble.MkSpeechBubble"]
  94854583199856["mktasklist.MkTask"]
  94854583201616["mktasklist.MkTaskList"]
  94854583400480["mktimeline.MkTimeline"]
  94854583219600["mkshields.MkShields"]
  94854583574032["mkmetadatabadges.MkMetadataBadges"]
  94854582919984 --&gt; 94854582920960
  94854582920960 --&gt; 94854582922720
  94854582920960 --&gt; 94854582997696
  94854582920960 --&gt; 94854583008800
  94854582919984 --&gt; 94854582722240
  94854582919984 --&gt; 94854582723216
  94854582919984 --&gt; 94854582908560
  94854582908560 --&gt; 94854574620240
  94854574620240 --&gt; 94854583320992
  94854574620240 --&gt; 94854583661264
  94854582908560 --&gt; 94854583229712
  94854582919984 --&gt; 94854582782240
  94854582782240 --&gt; 94854582994144
  94854582782240 --&gt; 94854583051152
  94854582782240 --&gt; 94854582949968
  94854582782240 --&gt; 94854582959280
  94854582782240 --&gt; 94854583028160
  94854582782240 --&gt; 94854583134784
  94854582782240 --&gt; 94854583277136
  94854582782240 --&gt; 94854582890320
  94854582782240 --&gt; 94854583571872
  94854582782240 --&gt; 94854583588448
  94854582782240 --&gt; 94854583585120
  94854582782240 --&gt; 94854583312576
  94854582782240 --&gt; 94854583324832
  94854582782240 --&gt; 94854583242048
  94854582782240 --&gt; 94854582944528
  94854582782240 --&gt; 94854583234560
  94854582782240 --&gt; 94854583071760
  94854582919984 --&gt; 94854582943200
  94854582919984 --&gt; 94854583040896
  94854583040896 --&gt; 94854583014896
  94854583040896 --&gt; 94854583012912
  94854582919984 --&gt; 94854583004688
  94854582919984 --&gt; 94854583210752
  94854583210752 --&gt; 94854583032400
  94854583210752 --&gt; 94854574622784
  94854582919984 --&gt; 94854583031360
  94854582919984 --&gt; 94854583023072
  94854582919984 --&gt; 94854583133024
  94854582919984 --&gt; 94854583254768
  94854582919984 --&gt; 94854583025616
  94854582919984 --&gt; 94854583304304
  94854582919984 --&gt; 94854583305280
  94854582919984 --&gt; 94854583193984
  94854583193984 --&gt; 94854583213472
  94854583213472 --&gt; 94854583214448
  94854583213472 --&gt; 94854583352048
  94854582919984 --&gt; 94854582839552
  94854582919984 --&gt; 94854583196528
  94854582919984 --&gt; 94854583199856
  94854582919984 --&gt; 94854583201616
  94854582919984 --&gt; 94854583400480
  94854582919984 --&gt; 94854583219600
  94854582919984 --&gt; 94854583574032</code></pre>

Example: MRO diagram

Jinja

{{ _mk.MkTable | MkClassDiagram(mode="mro") }}

Python

MkClassDiagram(klass=MkTable, mode='mro', direction='TD')
graph TD
  94854583014896["mktable.MkTable"]
  94854583040896["mkbasetable.MkBaseTable"]
  94854582919984["mkcontainer.MkContainer"]
  94854582916880["mknode.MkNode"]
  94854582838576["node.Node"]
  140544995341632["builtins.object"]
  94854583014896 --> 94854583040896
  94854583040896 --> 94854582919984
  94854582919984 --> 94854582916880
  94854582916880 --> 94854582838576
  94854582838576 --> 140544995341632
```` mermaid
graph TD
  94854583014896["mktable.MkTable"]
  94854583040896["mkbasetable.MkBaseTable"]
  94854582919984["mkcontainer.MkContainer"]
  94854582916880["mknode.MkNode"]
  94854582838576["node.Node"]
  140544995341632["builtins.object"]
  94854583014896 --> 94854583040896
  94854583040896 --> 94854582919984
  94854582919984 --> 94854582916880
  94854582916880 --> 94854582838576
  94854582838576 --> 140544995341632
````
<pre class="mermaid"><code>graph TD
  94854583014896["mktable.MkTable"]
  94854583040896["mkbasetable.MkBaseTable"]
  94854582919984["mkcontainer.MkContainer"]
  94854582916880["mknode.MkNode"]
  94854582838576["node.Node"]
  140544995341632["builtins.object"]
  94854583014896 --&gt; 94854583040896
  94854583040896 --&gt; 94854582919984
  94854582919984 --&gt; 94854582916880
  94854582916880 --&gt; 94854582838576
  94854582838576 --&gt; 140544995341632</code></pre>

Bases: MkDiagram

__init__

__init__(
    klass: type | str | griffe.Class,
    mode: DiagramModeStr = "baseclasses",
    direction: Literal["TD", "DT", "LR", "RL"] = "TD",
    max_depth: int | None = None,
    **kwargs: Any
)

Parameters:

Name Type Description Default
klass type | str | Class

Klass to show a diagram for

required
mode DiagramModeStr

What kind of diagram to display

'baseclasses'
direction Literal['TD', 'DT', 'LR', 'RL']

diagram direction

'TD'
max_depth int | None

Maxium depth to display

None
kwargs Any

Keyword arguments passed to parent

{}
Name Children Inherits
MkDiagram
mknodes.basenodes.mkdiagram
Class representing a mermaid diagram.
graph TD
  94854583320992["mkclassdiagram.MkClassDiagram"]
  94854574620240["mkdiagram.MkDiagram"]
  94854582908560["mkcode.MkCode"]
  94854582919984["mkcontainer.MkContainer"]
  94854582916880["mknode.MkNode"]
  94854582838576["node.Node"]
  140544995341632["builtins.object"]
  94854574620240 --> 94854583320992
  94854582908560 --> 94854574620240
  94854582919984 --> 94854582908560
  94854582916880 --> 94854582919984
  94854582838576 --> 94854582916880
  140544995341632 --> 94854582838576
/home/runner/work/mknodes/mknodes/mknodes/templatenodes/mkclassdiagram/metadata.toml
[metadata]
icon = "mdi:graph-outline"
name = "MkClassDiagram"
group = "diagram"

[[requirements.extension."pymdownx.superfences".custom_fences]]
name = "mermaid"
class = "mermaid"
format = "pymdownx.superfences.fence_code_format"

[examples.baseclass_diagram]
title = "Baseclass diagram"
jinja = """
{{ _mk.MkClassDiagram | MkClassDiagram(mode="baseclasses") }}
"""

[examples.subclass_diagram]
title = "Subclass diagram"
jinja = """
{{ _mk.MkContainer | MkClassDiagram(mode="subclasses", direction="LR") }}
"""

[examples.mro_diagram]
title = "MRO diagram"
jinja = """
{{ _mk.MkTable | MkClassDiagram(mode="mro") }}
"""

[output.markdown]
template = """
{{ node.fence_boundary }} mermaid
graph {{ node.direction }}
{% for identifier, title in node.builder.items | zip(node.builder.titles) %}
  {{ identifier }}["{{ title }}"]
{% endfor %}
{% for a, b in node.builder.connections %}
  {{ a }} --> {{ b }}
{% endfor %}
{{ node.fence_boundary }}
"""
mknodes.templatenodes.mkclassdiagram.MkClassDiagram
class MkClassDiagram(mkdiagram.MkDiagram):
    """Node to display the class hierarchy of a class. Supports multiple modes."""

    def __init__(
        self,
        klass: type | str | griffe.Class,
        mode: DiagramModeStr = "baseclasses",
        direction: Literal["TD", "DT", "LR", "RL"] = "TD",
        max_depth: int | None = None,
        **kwargs: Any,
    ):
        """Constructor.

        Arguments:
            klass: Klass to show a diagram for
            mode: What kind of diagram to display
            direction: diagram direction
            max_depth: Maxium depth to display
            kwargs: Keyword arguments passed to parent
        """
        self.klass = klass
        self.mode = mode
        self._max_depth = max_depth
        super().__init__(direction=direction, **kwargs)

    def __repr__(self):
        return reprhelpers.get_repr(
            self,
            klass=self.klass,
            mode=self.mode,
            direction=self.direction,
        )

    @property
    def builder(self):
        klass = classhelpers.to_class(self.klass)
        match self.mode:
            case "subclasses":
                return SubclassConnector(klass, max_depth=self._max_depth)
            case "baseclasses":
                return ParentClassConnector(klass, max_depth=self._max_depth)
            case "mro":
                return MroConnector(klass, max_depth=self._max_depth)
            case _:
                raise ValueError(self.mode)

    @property
    def mermaid_code(self) -> str:
        return self.builder.get_graph_connection_text()